/**
 * 请求模块
 */
import axios from 'axios'
import { getItem } from '@/utils/storage.js'
import store from '@/store'
import JSONBig from 'json-bigint'
// JSONBig.parse === JSON.parse 能处理大数
// JSONBig.stringify === JSON.stringify
// const json = '{"artid": 1302062843876605952}'
// console.log(JSON.parse(json))
// console.log(JSONBig.parse(json).artid.toString())

// console.log(JSON.stringify(JSONBig.parse(json)))
// console.log(JSONBig.stringify(JSONBig.parse(json)))

const request = axios.create({
  baseURL: 'http://ttapi.research.itcast.cn/',
  // 自定义后端返回的原始数据
  transformResponse: [function (data) {
    // 对data进行任意转换处理
    try {
      return JSONBig.parse(data)
    } catch (err) {
      return data
    }
  }]
  // Axios默认会在内部这样来处理后端返回的数据
  // return JSON.parse(data)
})
// 请求拦截器 通过Axios.create可以进行所有的统一配置，会返回一个新的Axios实例对象
request.interceptors.request.use((config) => {
  if (store.state.user) {
    config.headers.Authorization = 'Bearer ' + getItem('HMTT_TOKEN').token
  }
  return config
})
// 响应拦截器
export default request
